greatest common divisor discrete math